home *** CD-ROM | disk | FTP | other *** search
- /* Header file for EqnCompiler */
-
- /* maximum number of pending operations */
- #define MAX_PENDING 20
- /* maximum length for a numeric constant */
- #define MAX_CONST_LEN 20
- /* maximum length for a custom keyword */
- #define MAX_KWORD_LEN 10
-
- #define OPERAND_SCAN 1
- #define OPERATOR_SCAN 2
- #define PARENTH 0
- #define RANK 0xFFFFF000
-
- /* operands */
- #define X_OPERAND 0x1000
- #define COEFF_OPERAND 0x2000
- #define CONST_OPERAND 0x4000
- #define PI_OPERAND 0x4000
-
- /* operations - in order of priority */
- #define PRIORITY_1 0x1000 /* add, subtract */
- #define PRIORITY_2 0x2000 /* mult, divide */
- #define UN_MINUS 0x3000 /* unary minus */
- #define EXPONENT 0x4000 /* raise power */
- #define UN_FUNC 0x5000 /* unary func */
-
- /* function types */
- #define FP68K 0x0100
- #define ELEMS68K 0x0200
- #define CUSTOM 0x0400
-
- /* errors returned by CompileEqn() */
- #define nullEqnErr 1 /* only white space chars found in text */
- #define memoryErr 2 /* problems allocating memory for code */
- #define longNumErr 3 /* numeric constant too long */
- #define badNumErr 4 /* invalid numeric constant */
- #define noOperandErr 5 /* expecting operand or function */
- #define noOperatorErr 6 /* missing operator */
- #define badTokenErr 7 /* unrecognized characters */
- #define noLeftParenErr 8 /* missing left parenthesis in function */
- #define unbalParenErr 9 /* unbalanced parentheses */
- #define tooManyOpErr 10 /* too many pending operations */
- #define miscErr 11 /* other error */
-
- /* function prototypes */
- int CompileEqn(void *, int, int *, Handle);
- int ScanNum(extended *);
- int ScanFn(int *);
- int ScanOp(int *);
- int OperationCode(int, int, int, extended *);
- int OperandCode(int, int, extended *);
- int UnOpCode(int);
- int BinOpCode1(int, int, int);
- int BinOpCode2(int);
- int ReturnCode1(int, int, extended *);
- int ReturnCode2(void);
- int LookUpCF(char *, int *);
-
-
-